package com.xy.biz.xd.domain.bo;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Collection;

/**
 *
 *
 * @author wcs
 * @date 2021-3-4
 */
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Data
public class DocumentReleaseBO {

    public final static int RECEIVE_TYPE_USER = 0;
    public final static int RECEIVE_TYPE_USER_GROUP = 1;

    public final static int STATUS_RELEASE = 0;
    /**
     * 改版
     */
    public final static int STATUS_OUTMODED = 1;
    /**
     * 废弃
     */
    public final static int STATUS_DISUSED = 2;

    /**
     * 文件发行Id
     */
    private Long documentReleaseId;
    /**
     * 文件发行Id
     */
    private Collection<Long> documentReleaseIdS;
    /**
     * 接收对象Id
     */
    private Long receiveId;
    /**
     * 接收类型：0-用户，1-部门
     */
    private Integer receiveType;
    /**
     * 状态：0-放行，1-过时，2-作废
     */
    private Integer status;
    /**
     * 流程类型：0-未定义，1-新增流程，2-修订流程，3-作废流程，4-下载审批流程，5-借阅流程
     */
    private Integer flowType;
    /**
     * 权限（共享文件权限定义）
     */
    private Integer permission;
    /**
     * 流程Id
     */
    private Long documentFlowId;
    /**
     * 文件Id
     */
    private Long documentId;
    /**
     * 文件编号
     */
    private String documentCode;
    /**
     * 文件名称
     */
    private String documentName;
    /**
     * 文件版本
     */
    private String documentVersion;
    /**
     * 文件等级
     */
    private Integer documentLevel;
    /**
     * 文件等级
     */
    private String documentLevelName;
    /**
     * 文件属性
     */
    private String documentProperty;
    /**
     * 文件属性
     */
    private String documentPropertyName;
    /**
     * 租户Id，0表示不指定
     */
    private Long tenantId;
    /**
     * 创建用户Id
     */
    private Long createUserId;
    /**
     * 创建用户部门
     */
    private String createUserGroupName;
    /**
     * 生效时间
     */
    private LocalDate effectDate;
    /**
     * 失效时间
     */
    private LocalDate failureDate;
    /**
     * 创建时间
     */
    private LocalDateTime createTime;
    /**
     * 更新时间
     */
    private LocalDateTime updateTime;
    /**
     * 文件扩展名
     */
    private String fileExtension;
    /**
     * 是否签收 0 未签收 1 已签收
     */
    private Integer signForStatus;
    /**
     * 签收时间
     */
    private LocalDateTime signForTime;
    /**
     * 签收时间(n分钟前)
     */
    private String signForTimeString;
    /**
     * 是否自学 0 未自学 1 已自学
     */
    private Integer selfStudy;
    /**
     * 删除标识：0-正常，1-删除
     */
    private Boolean deleteFlag;
    /**
     * 排序号
     */
    private Integer sequence;
    /**
     * 生效开关：0-关闭(失效)，1-打开(生效)
     */
    private Boolean effectValve;
    /**
     * 生效标识：0-未生效，1-已生效
     */
    private Boolean effectFlag;
}
